前面我們有說過,在Python的世界中,萬物皆物件。但物件只是這個世界的最小單位而已,接下來讓我們認識其他的應用吧!
在進到物件之前,讓我們來先談談類別。
你也許聽過,所謂的類別就是物件的藍圖。也就是想像今天我們要煮某一到菜(物件),及其所需要的食譜(類別);又或者想像假如我想要做一塊餅乾(物件),幫我製作餅乾的模型(類別)。
從中我們可以發現,類別就是規劃物件的一個設計稿、模型,它可以幫我們定義物件的屬性和方法、協助我們重複利用物件。
這個我們已經非常熟悉了。從開始寫Python的第一個=
,就是在宣告一個物件。
屬性(Attribute)其實可以再劃分為實體屬性(Instance Attribute)與類別屬性(Class Attribute)。
實體屬性其實就是針對物件的描述,並透過點.
的語法來建立。
每個物件的屬性各自獨立,因此當你修改某物件屬性時,並不會影響到另一個物件。
我們同樣可以針對類別來建立其屬性,建立語法相同.
。
但需要特別注意的是,類別底下的物件將共享這個屬性,因此當你修改類別屬性時,底下的物件將會一起被調整。
我們可以透過建構式來建立物件,並定義它的屬性。
而這時候我們會用到這個所謂的Python 特殊方法 (special method names):__init__
。
__init__
必須要引入第一個參數self
,用以表示建立的實體,__
則是宣告引入的屬性為私有。
def __init__(self, length, width): #建構式
self.length = length #實體屬性
self.width = width
最後是方法,方法可以很好的理解為該物件的行為,也就是我們要程式執行的事項。
和建構式一樣前面有一個def
來定義,也同樣需有參數self
。
方法(Method)和函數(Function)最大的差別在於與類別和物件的聯繫。
函數可以單獨存在且獨立被呼叫,而方法則是必須依賴類別和物件來呼叫。
參考資料:
https://www.learncodewithmike.com/2020/01/python-class.html
https://iter01.com/550398.html